# 面向对象特性
# 三、多态

class Animal:
    def speak(self):
        pass


class Dog(Animal):
    def speak(self):
        print("Dog speaking!")


class Cat(Animal):
    def speak(self):
        print("Cat speaking!")


def make_noice(animal: Animal):
    animal.speak()


dog = Dog()
cat = Cat()
make_noice(dog)
make_noice(cat)
